Previous topicNext topic
Help > Keyword Reference >
#DEBUG PRINT metastatement

Purpose

Display information in the IDE's Debugger Output Window

Syntax

#DEBUG PRINT string_expression

Remarks

The PRINT option allows the programmer to display arbitrary information in the IDE's Debug Output Window during a debugging session. The output window is provided by debugger to display status information about the state of the debugging session; however, #DEBUG PRINT provides a convenient way of creating a "process log" of a Sub/Function/Method/Property/Variable as the program runs. Combined with FUNCNAME$, #DEBUG PRINT can be a useful tool for debugging application code. See the Example below.

This is possible because the Debugger Output Window has a scrollable range somewhat like a console window, whereas the Watch Window shows only the instantaneous value of a variable.

#DEBUG PRINT statements are ignored when code is compiled into a standalone (EXE/DLL) file; they are only included when using the Debugger. Control codes in the string are translated into hex format in the output window. For example, embedded CHR$(0) or $NUL bytes are displayed as "<00>".

Restrictions

You may use Unicode strings with #DEBUG PRINT, but the results will always be converted to ANSI by Windows.  This is a Windows design limitation, not a limitation of PowerBASIC.

See also

Debugging, #DEBUG ERROR, FUNCNAME$

Example

FUNCTION PBMAIN() AS LONG

 Arg1% = 10000

 Arg2% = 20000

 CALL MySub(Arg1%, Arg2%)

 CALL MySub(Arg2%, Arg1%)

 #DEBUG PRINT "Done!"

END FUNCTION

 

SUB MySub(Arg1%, Arg2%)

 #DEBUG PRINT "We're in " & FUNCNAME$

 #DEBUG PRINT "Arg2% is" & STR$(Arg2%)

END SUB

Result

We're in MYSUB

Arg2% is 20000

We're in MYSUB

Arg2% is 10000

Done!